/*
 * Decompiled with CFR 0.150.
 * 
 * Could not load the following classes:
 *  cn.hutool.core.date.DateUtil
 *  cn.hutool.core.util.ObjectUtil
 *  com.alibaba.fastjson.JSON
 *  de.felixroske.jfxsupport.FXMLController
 *  javafx.application.Platform
 *  javafx.beans.value.ChangeListener
 *  javafx.beans.value.ObservableValue
 *  javafx.collections.FXCollections
 *  javafx.collections.ObservableList
 *  javafx.event.EventHandler
 *  javafx.fxml.FXML
 *  javafx.fxml.Initializable
 *  javafx.scene.Node
 *  javafx.scene.control.Alert
 *  javafx.scene.control.Alert$AlertType
 *  javafx.scene.control.Button
 *  javafx.scene.control.DatePicker
 *  javafx.scene.control.ScrollPane
 *  javafx.scene.control.TableCell
 *  javafx.scene.control.TableColumn
 *  javafx.scene.control.TableRow
 *  javafx.scene.control.TableView
 *  javafx.scene.control.TextField
 *  javafx.scene.control.cell.PropertyValueFactory
 *  javafx.scene.input.KeyCode
 *  javafx.scene.input.KeyEvent
 *  javafx.scene.layout.AnchorPane
 *  javafx.scene.layout.VBox
 *  javafx.stage.Modality
 *  javafx.stage.Stage
 *  javafx.util.Callback
 *  org.springframework.beans.factory.annotation.Autowired
 */
package com.gys.controller.replenish;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.gys.GysApplication;
import com.gys.common.business.ReplenishUtil;
import com.gys.common.data.HttpJson;
import com.gys.common.util.CacheUtil;
import com.gys.common.util.CommonUtil;
import com.gys.common.util.ConstUtil;
import com.gys.common.util.SpringUtil;
import com.gys.controller.BaseController;
import com.gys.controller.index.IndexController;
import com.gys.controller.replenish.AddTypeReplenishController;
import com.gys.controller.replenish.ReplenishController;
import com.gys.data.accept.ProductOutData;
import com.gys.data.example.GetLoginStoreOutData;
import com.gys.data.replenish.GetReplenishDetailOutData;
import com.gys.data.replenish.GetReplenishInData;
import com.gys.data.replenish.GetReplenishOutData;
import com.gys.data.replenish.StoreInData;
import com.gys.data.replenish.StoreOutData;
import com.gys.view.replenish.AddView;
import com.gys.view.replenish.ChooseProduct;
import com.gys.view.replenish.SearchProduct;
import de.felixroske.jfxsupport.FXMLController;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.net.URL;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.ResourceBundle;
import java.util.Timer;
import java.util.TimerTask;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javafx.application.Platform;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.DatePicker;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableRow;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.util.Callback;
import org.springframework.beans.factory.annotation.Autowired;

@FXMLController
public class AddReplenishController
extends BaseController
implements Initializable {
    private final int pageSize = ConstUtil.DEFAULT_PAGESIZE;
    private final int defaultPageCount = ConstUtil.DEFAULT_PAGECOUNT;
    private ObservableList<GetReplenishDetailOutData> observableTableList = FXCollections.observableArrayList(new ArrayList());
    @FXML
    private AnchorPane anchorPane;
    @FXML
    private ScrollPane scrollPane;
    @FXML
    private VBox vBox;
    @FXML
    private TextField typeQuery;
    @FXML
    private DatePicker dateQuery;
    @FXML
    private Button save;
    @FXML
    private Button search;
    @FXML
    private Button clear;
    @FXML
    private Button clearAll;
    @FXML
    private Button reset;
    @FXML
    private Button add;
    @FXML
    private Button delete;
    @FXML
    private TableView<GetReplenishDetailOutData> tableView;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdSerial;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdProId;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdProName;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdProPec;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdProUnit;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdProCompany;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdProPlace;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdAverageCost;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdGrossMargin;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdProPrice;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdSalesDays1;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdSalesDays2;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdSalesDays3;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdProposeQty;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdNeedQty;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdStockStore;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdDisplayMin;
    @FXML
    private TableColumn<GetReplenishDetailOutData, String> gsrdPackMidsize;
    @Autowired
    private ReplenishController replenishController;
    @Autowired
    private AddTypeReplenishController addTypeReplenishController;
    @Autowired
    private IndexController indexController;
    private String type = "";

    public void initialize(URL location, ResourceBundle resources) {
        this.scrollPane.setPrefWidth(this.getContentWidth());
        this.scrollPane.setPrefHeight(this.getContentHeight());
        this.vBox.setPrefWidth(this.getContentWidth());
        this.vBox.setPrefHeight(this.getContentHeight());
        this.tableView.setPrefWidth(this.getContentWidth());
        this.init();
    }

    @Override
    public void init() {
        if (ObjectUtil.isEmpty(this.anchorPane)) {
            return;
        }
        this.clearAll();
        if (ObjectUtil.isNotEmpty(this.replenishController.getVoucherId())) {
            GetReplenishInData replenishInData = new GetReplenishInData();
            replenishInData.setGsrhVoucherId(this.replenishController.getVoucherId());
            HttpJson result = ReplenishUtil.getDetail(replenishInData);
            GetReplenishOutData data = new GetReplenishOutData();
            if (result.isSuccess()) {
                data = (GetReplenishOutData)JSON.parseObject((String)result.getMsg(), GetReplenishOutData.class);
                if ("2".equals(data.getGsrhType())) {
                    this.typeQuery.setText("\u914d\u9001");
                    this.gsrdAverageCost.setVisible(false);
                    this.gsrdGrossMargin.setVisible(false);
                } else {
                    this.typeQuery.setText("\u5355\u91c7");
                }
                String pdsYear = data.getGsrhDate().substring(0, 4);
                String pdsMonth = data.getGsrhDate().substring(4, 6);
                String pdsDay = data.getGsrhDate().substring(6);
                this.dateQuery.setValue(LocalDate.of((int)Integer.valueOf(pdsYear), Integer.valueOf(pdsMonth), (int)Integer.valueOf(pdsDay)));
                this.observableTableList = FXCollections.observableArrayList(data.getDetailList());
                this.initTable();
            }
            this.save.setVisible(false);
            this.search.setVisible(false);
            this.clear.setVisible(false);
            this.clearAll.setVisible(false);
            this.reset.setVisible(false);
            this.add.setVisible(false);
            this.delete.setVisible(false);
        } else {
            String date;
            StoreInData inData = new StoreInData();
            inData.setStoCode(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
            HttpJson rsp = ReplenishUtil.getStore(inData);
            if (rsp.isSuccess()) {
                StoreOutData object = (StoreOutData)JSON.parseObject((String)rsp.getMsg(), StoreOutData.class);
                this.type = object.getStoDeliveryMode();
                if ("2".equals(object.getStoDeliveryMode())) {
                    this.typeQuery.setText("\u914d\u9001");
                    this.gsrdAverageCost.setVisible(false);
                    this.gsrdGrossMargin.setVisible(false);
                } else {
                    this.typeQuery.setText("\u5355\u91c7");
                }
            }
            if (ObjectUtil.isEmpty((date = (String)CacheUtil.get("replenishDate")))) {
                date = DateUtil.format((Date)new Date(), (String)"yyyyMMdd");
            }
            String pdsYear = date.substring(0, 4);
            String pdsMonth = date.substring(4, 6);
            String pdsDay = date.substring(6);
            this.dateQuery.setValue(LocalDate.of((int)Integer.valueOf(pdsYear), Integer.valueOf(pdsMonth), (int)Integer.valueOf(pdsDay)));
            if (this.addTypeReplenishController.getType().equals("0")) {
                GetReplenishInData replenishInData = new GetReplenishInData();
                HttpJson result = ReplenishUtil.detailList(replenishInData);
                List<GetReplenishDetailOutData> list = new ArrayList();
                if (result.isSuccess()) {
                    list = JSON.parseArray((String)result.getMsg(), GetReplenishDetailOutData.class);
                    int index = 1;
                    for (GetReplenishDetailOutData data : list) {
                        data.setGsrdSerial(index + "");
                        ++index;
                    }
                    this.observableTableList = FXCollections.observableArrayList(list);
                    this.changeToTextFieldEdit(this.gsrdNeedQty);
                    this.initTable();
                } else {
                    Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", result.getMsg());
                    alert.showAndWait();
                }
            }
            this.save.setVisible(true);
            this.search.setVisible(true);
            this.clear.setVisible(true);
            this.clearAll.setVisible(true);
            this.reset.setVisible(true);
            this.add.setVisible(true);
            this.delete.setVisible(true);
            new Timer().schedule(new TimerTask(){

                @Override
                public void run() {
                    AddView view = SpringUtil.getBean(AddView.class);
                    Stage stage = (Stage)view.getView().getScene().getWindow();
                    stage.getScene().setOnKeyReleased((EventHandler)new EventHandler<KeyEvent>(){

                        public void handle(KeyEvent event) {
                            if (event.getCode() == KeyCode.F9) {
                                AddReplenishController.this.save();
                                return;
                            }
                            if (event.getCode() == KeyCode.F2) {
                                AddReplenishController.this.search();
                                return;
                            }
                            if (event.getCode() == KeyCode.F5) {
                                AddReplenishController.this.clear();
                                return;
                            }
                            if (event.getCode() == KeyCode.F6) {
                                AddReplenishController.this.clearAll();
                                return;
                            }
                            if (event.getCode() == KeyCode.F7) {
                                AddReplenishController.this.reset();
                                return;
                            }
                            if (event.getCode() == KeyCode.F11) {
                                AddReplenishController.this.add();
                                return;
                            }
                            if (event.getCode() == KeyCode.F12) {
                                AddReplenishController.this.delete();
                                return;
                            }
                        }
                    });
                }
            }, 1000L);
        }
    }

    @FXML
    private void save() {
        Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", null);
        if (this.observableTableList.size() == 0) {
            alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u8bf7\u6dfb\u52a0\u5546\u54c1");
            alert.showAndWait();
            return;
        }
        for (int i = 0; i < this.observableTableList.size(); ++i) {
            if (!ObjectUtil.isEmpty(((GetReplenishDetailOutData)this.observableTableList.get(i)).getGsrdNeedQty())) continue;
            alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u8865\u8d27\u91cf\u8bf7\u586b\u5199\u5b8c\u6574");
            alert.showAndWait();
            return;
        }
        GetReplenishInData inData = new GetReplenishInData();
        inData.setGsrhType(this.type);
        inData.setGsrhDate(DateUtil.format((Date)DateUtil.parse((String)((LocalDate)this.dateQuery.getValue()).toString()), (String)"yyyyMMdd"));
        inData.setGsrhPattern(this.addTypeReplenishController.getType());
        inData.setDetailList((List<GetReplenishDetailOutData>)this.observableTableList);
        HttpJson rsp = ReplenishUtil.insert(inData);
        if (rsp.isSuccess()) {
            CacheUtil.remove("replenishDate");
            this.init();
            this.clearAll();
            this.anchorPane.getScene().getWindow().hide();
            this.replenishController.initTable(0);
        } else {
            alert.setContentText(rsp.getMsg());
            alert.showAndWait();
        }
    }

    @FXML
    private void search() {
        GysApplication.showView(SearchProduct.class, (Modality)Modality.APPLICATION_MODAL);
    }

    @FXML
    public TableView<GetReplenishDetailOutData> doSearch(String productCode) {
        ObservableList results = FXCollections.observableArrayList(new ArrayList());
        Pattern pattern = Pattern.compile(productCode);
        for (int i = 0; i < this.observableTableList.size(); ++i) {
            Matcher matcher = pattern.matcher(((GetReplenishDetailOutData)this.observableTableList.get(i)).getGsrdProId());
            if (!matcher.find()) continue;
            results.add(this.observableTableList.get(i));
        }
        for (GetReplenishDetailOutData data : this.observableTableList) {
            if (results.contains(data)) continue;
            results.add(data);
        }
        this.bingTableCell();
        this.tableView.setItems(results);
        this.changeToTextFieldEdit(this.gsrdNeedQty);
        return this.tableView;
    }

    @FXML
    private TableView<GetReplenishDetailOutData> clear() {
        for (GetReplenishDetailOutData outData : this.observableTableList) {
            outData.setGsrdNeedQty("0");
        }
        this.bingTableCell();
        this.tableView.setItems(this.observableTableList);
        this.changeToTextFieldEdit(this.gsrdNeedQty);
        return this.tableView;
    }

    @FXML
    private TableView<GetReplenishDetailOutData> initTable() {
        this.bingTableCell();
        this.tableView.setItems(this.observableTableList);
        this.bingTableRow();
        return this.tableView;
    }

    @FXML
    private void clearAll() {
        this.observableTableList.clear();
    }

    @FXML
    private TableView<GetReplenishDetailOutData> reset() {
        for (GetReplenishDetailOutData outData : this.observableTableList) {
            outData.setGsrdNeedQty(outData.getGsrdProposeQty());
        }
        this.bingTableCell();
        this.tableView.setItems(this.observableTableList);
        this.changeToTextFieldEdit(this.gsrdNeedQty);
        return this.tableView;
    }

    @FXML
    private void add() {
        GysApplication.showView(ChooseProduct.class, (Modality)Modality.APPLICATION_MODAL);
    }

    @FXML
    public TableView<GetReplenishDetailOutData> addProduct(ProductOutData product) {
        GetReplenishDetailOutData data = new GetReplenishDetailOutData();
        int index = this.observableTableList.size();
        data.setGsrdSerial(String.valueOf(index + 1));
        data.setGsrdProId(product.getProCode());
        data.setGsrdProCompany(product.getProFactoryName());
        data.setGsrdProName(product.getGspgProName());
        data.setGsrdProPlace(product.getProPlace());
        data.setGsrdProPec(product.getGspgSpecs());
        data.setGsrdProUnit(product.getProUnit());
        data.setGsrdProPrice(product.getProPrice());
        data.setGsrdPackMidsize(product.getMidPackage());
        GetReplenishInData inData = new GetReplenishInData();
        inData.setProductCode(product.getProCode());
        HttpJson rsp = ReplenishUtil.getSales(inData);
        if (rsp.isSuccess()) {
            GetReplenishOutData object = (GetReplenishOutData)JSON.parseObject((String)rsp.getMsg(), GetReplenishOutData.class);
            data.setGsrdSalesDays1(object.getSalesCountOne());
            data.setGsrdSalesDays2(object.getSalesCountTwo());
            data.setGsrdSalesDays3(object.getSalesCountThree());
        }
        inData = new GetReplenishInData();
        inData.setProductCode(product.getProCode());
        HttpJson rspCost = ReplenishUtil.getCost(inData);
        if (rspCost.isSuccess()) {
            GetReplenishOutData object = (GetReplenishOutData)JSON.parseObject((String)rspCost.getMsg(), GetReplenishOutData.class);
            data.setGsrdAverageCost(object.getAverageCost());
            data.setGsrdGrossMargin(object.getBatchCost());
        }
        inData = new GetReplenishInData();
        inData.setProductCode(product.getProCode());
        inData.setStoCode(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        HttpJson rspStock = ReplenishUtil.getStock(inData);
        if (rspStock.isSuccess()) {
            GetReplenishOutData object = (GetReplenishOutData)JSON.parseObject((String)rspStock.getMsg(), GetReplenishOutData.class);
            data.setGsrdStockStore(object.getStock());
        }
        inData = new GetReplenishInData();
        inData.setParamCode("REPLENISH_MINQTY");
        inData.setStoCode(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        HttpJson rspParam = ReplenishUtil.getParam(inData);
        if (rspParam.isSuccess()) {
            GetReplenishOutData object = (GetReplenishOutData)JSON.parseObject((String)rspParam.getMsg(), GetReplenishOutData.class);
            data.setGsrdDisplayMin(object.getParam());
        }
        inData.setProductCode(product.getProCode());
        inData.setStoCode(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        HttpJson rspCount = ReplenishUtil.getCount(inData);
        if (rspCount.isSuccess()) {
            GetReplenishOutData object = (GetReplenishOutData)JSON.parseObject((String)rspCount.getMsg(), GetReplenishOutData.class);
            data.setGsrdProposeQty(object.getGsrhTotalQty());
            data.setGsrdNeedQty(object.getGsrhTotalQty());
        } else {
            data.setGsrdProposeQty("0");
            data.setGsrdNeedQty("0");
        }
        inData = new GetReplenishInData();
        inData.setProductCode(product.getProCode());
        inData.setStoCode(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        HttpJson rspAmt = ReplenishUtil.getVoucherAmt(inData);
        if (rspAmt.isSuccess()) {
            GetReplenishOutData object = (GetReplenishOutData)JSON.parseObject((String)rspAmt.getMsg(), GetReplenishOutData.class);
            data.setVoucherAmt(object.getVoucherAmt());
        }
        this.observableTableList.add(data);
        this.bingTableCell();
        this.tableView.setItems(this.observableTableList);
        this.changeToTextFieldEdit(this.gsrdNeedQty);
        return this.tableView;
    }

    @FXML
    private void delete() {
        if (this.observableTableList.size() > 0) {
            this.observableTableList.remove(this.observableTableList.size() - 1);
        }
    }

    private void bingTableRow() {
    }

    private void bingTableCell() {
        this.gsrdSerial.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdSerial.getId()));
        this.gsrdProId.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdProId.getId()));
        this.gsrdProName.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdProName.getId()));
        this.gsrdProPec.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdProPec.getId()));
        this.gsrdProUnit.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdProUnit.getId()));
        this.gsrdProCompany.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdProCompany.getId()));
        this.gsrdProPlace.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdProPlace.getId()));
        this.gsrdAverageCost.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdAverageCost.getId()));
        this.gsrdGrossMargin.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdGrossMargin.getId()));
        this.gsrdProPrice.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdProPrice.getId()));
        this.gsrdSalesDays1.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdSalesDays1.getId()));
        this.gsrdSalesDays2.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdSalesDays2.getId()));
        this.gsrdSalesDays3.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdSalesDays3.getId()));
        this.gsrdProposeQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdProposeQty.getId()));
        this.gsrdNeedQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdNeedQty.getId()));
        this.gsrdStockStore.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdStockStore.getId()));
        this.gsrdDisplayMin.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdDisplayMin.getId()));
        this.gsrdPackMidsize.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrdPackMidsize.getId()));
    }

    public void changeToTextFieldEdit(TableColumn<GetReplenishDetailOutData, String> column) {
        column.setCellFactory(tc -> {
            final TextField textField = new TextField();
            TableCell<GetReplenishDetailOutData, String> cell = new TableCell<GetReplenishDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        textField.setText(chuzhi);
                        this.setGraphic((Node)textField);
                    }
                }
            };
            textField.textProperty().addListener(new ChangeListener(){
                final TableCell val_cell;
                final TextField val_textField;
                {
                    this.val_cell = cell;
                    this.val_textField = textField;
                }

                public void changed(ObservableValue observable, Object oldValue, Object newValue) {
                    TableRow currentRow = this.val_cell.getTableRow();
                    int rank = this.val_cell.getIndex();
                    String cloumName = this.val_cell.getId();
                    String value = this.val_textField.getText();
                    GetReplenishDetailOutData outData = (GetReplenishDetailOutData)AddReplenishController.this.observableTableList.get(rank);
                    if (ObjectUtil.isNotEmpty(newValue)) {
                        if (new BigDecimal(newValue.toString()).compareTo(new BigDecimal(outData.getGsrdProposeQty())) > 0) {
                            Platform.runLater(() -> currentRow.setStyle("-fx-background-color:red"));
                        }
                        if (new BigDecimal(newValue.toString()).compareTo(new BigDecimal(outData.getGsrdProposeQty())) < 0) {
                            Platform.runLater(() -> currentRow.setStyle("-fx-background-color:green"));
                        }
                    }
                    String methodName = CommonUtil.getSetMethod(cloumName);
                    try {
                        Method method = GetReplenishDetailOutData.class.getMethod(methodName, String.class);
                        method.invoke(outData, value);
                    }
                    catch (Exception ex) {
                        throw new RuntimeException("\u6ca1\u6709\u65b9\u6cd5" + methodName);
                    }
                }
            });
            return cell;
        });
    }

    public int getPageSize() {
        return this.pageSize;
    }

    public int getDefaultPageCount() {
        return this.defaultPageCount;
    }

    public ObservableList<GetReplenishDetailOutData> getObservableTableList() {
        return this.observableTableList;
    }

    public AnchorPane getAnchorPane() {
        return this.anchorPane;
    }

    public ScrollPane getScrollPane() {
        return this.scrollPane;
    }

    public VBox getVBox() {
        return this.vBox;
    }

    public TextField getTypeQuery() {
        return this.typeQuery;
    }

    public DatePicker getDateQuery() {
        return this.dateQuery;
    }

    public Button getSave() {
        return this.save;
    }

    public Button getSearch() {
        return this.search;
    }

    public Button getClear() {
        return this.clear;
    }

    public Button getClearAll() {
        return this.clearAll;
    }

    public Button getReset() {
        return this.reset;
    }

    public Button getAdd() {
        return this.add;
    }

    public Button getDelete() {
        return this.delete;
    }

    public TableView<GetReplenishDetailOutData> getTableView() {
        return this.tableView;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdSerial() {
        return this.gsrdSerial;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdProId() {
        return this.gsrdProId;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdProName() {
        return this.gsrdProName;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdProPec() {
        return this.gsrdProPec;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdProUnit() {
        return this.gsrdProUnit;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdProCompany() {
        return this.gsrdProCompany;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdProPlace() {
        return this.gsrdProPlace;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdAverageCost() {
        return this.gsrdAverageCost;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdGrossMargin() {
        return this.gsrdGrossMargin;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdProPrice() {
        return this.gsrdProPrice;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdSalesDays1() {
        return this.gsrdSalesDays1;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdSalesDays2() {
        return this.gsrdSalesDays2;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdSalesDays3() {
        return this.gsrdSalesDays3;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdProposeQty() {
        return this.gsrdProposeQty;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdNeedQty() {
        return this.gsrdNeedQty;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdStockStore() {
        return this.gsrdStockStore;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdDisplayMin() {
        return this.gsrdDisplayMin;
    }

    public TableColumn<GetReplenishDetailOutData, String> getGsrdPackMidsize() {
        return this.gsrdPackMidsize;
    }

    public ReplenishController getReplenishController() {
        return this.replenishController;
    }

    public AddTypeReplenishController getAddTypeReplenishController() {
        return this.addTypeReplenishController;
    }

    public IndexController getIndexController() {
        return this.indexController;
    }

    public String getType() {
        return this.type;
    }

    public void setObservableTableList(ObservableList<GetReplenishDetailOutData> observableTableList) {
        this.observableTableList = observableTableList;
    }

    public void setAnchorPane(AnchorPane anchorPane) {
        this.anchorPane = anchorPane;
    }

    public void setScrollPane(ScrollPane scrollPane) {
        this.scrollPane = scrollPane;
    }

    public void setVBox(VBox vBox) {
        this.vBox = vBox;
    }

    public void setTypeQuery(TextField typeQuery) {
        this.typeQuery = typeQuery;
    }

    public void setDateQuery(DatePicker dateQuery) {
        this.dateQuery = dateQuery;
    }

    public void setSave(Button save) {
        this.save = save;
    }

    public void setSearch(Button search) {
        this.search = search;
    }

    public void setClear(Button clear) {
        this.clear = clear;
    }

    public void setClearAll(Button clearAll) {
        this.clearAll = clearAll;
    }

    public void setReset(Button reset) {
        this.reset = reset;
    }

    public void setAdd(Button add) {
        this.add = add;
    }

    public void setDelete(Button delete) {
        this.delete = delete;
    }

    public void setTableView(TableView<GetReplenishDetailOutData> tableView) {
        this.tableView = tableView;
    }

    public void setGsrdSerial(TableColumn<GetReplenishDetailOutData, String> gsrdSerial) {
        this.gsrdSerial = gsrdSerial;
    }

    public void setGsrdProId(TableColumn<GetReplenishDetailOutData, String> gsrdProId) {
        this.gsrdProId = gsrdProId;
    }

    public void setGsrdProName(TableColumn<GetReplenishDetailOutData, String> gsrdProName) {
        this.gsrdProName = gsrdProName;
    }

    public void setGsrdProPec(TableColumn<GetReplenishDetailOutData, String> gsrdProPec) {
        this.gsrdProPec = gsrdProPec;
    }

    public void setGsrdProUnit(TableColumn<GetReplenishDetailOutData, String> gsrdProUnit) {
        this.gsrdProUnit = gsrdProUnit;
    }

    public void setGsrdProCompany(TableColumn<GetReplenishDetailOutData, String> gsrdProCompany) {
        this.gsrdProCompany = gsrdProCompany;
    }

    public void setGsrdProPlace(TableColumn<GetReplenishDetailOutData, String> gsrdProPlace) {
        this.gsrdProPlace = gsrdProPlace;
    }

    public void setGsrdAverageCost(TableColumn<GetReplenishDetailOutData, String> gsrdAverageCost) {
        this.gsrdAverageCost = gsrdAverageCost;
    }

    public void setGsrdGrossMargin(TableColumn<GetReplenishDetailOutData, String> gsrdGrossMargin) {
        this.gsrdGrossMargin = gsrdGrossMargin;
    }

    public void setGsrdProPrice(TableColumn<GetReplenishDetailOutData, String> gsrdProPrice) {
        this.gsrdProPrice = gsrdProPrice;
    }

    public void setGsrdSalesDays1(TableColumn<GetReplenishDetailOutData, String> gsrdSalesDays1) {
        this.gsrdSalesDays1 = gsrdSalesDays1;
    }

    public void setGsrdSalesDays2(TableColumn<GetReplenishDetailOutData, String> gsrdSalesDays2) {
        this.gsrdSalesDays2 = gsrdSalesDays2;
    }

    public void setGsrdSalesDays3(TableColumn<GetReplenishDetailOutData, String> gsrdSalesDays3) {
        this.gsrdSalesDays3 = gsrdSalesDays3;
    }

    public void setGsrdProposeQty(TableColumn<GetReplenishDetailOutData, String> gsrdProposeQty) {
        this.gsrdProposeQty = gsrdProposeQty;
    }

    public void setGsrdNeedQty(TableColumn<GetReplenishDetailOutData, String> gsrdNeedQty) {
        this.gsrdNeedQty = gsrdNeedQty;
    }

    public void setGsrdStockStore(TableColumn<GetReplenishDetailOutData, String> gsrdStockStore) {
        this.gsrdStockStore = gsrdStockStore;
    }

    public void setGsrdDisplayMin(TableColumn<GetReplenishDetailOutData, String> gsrdDisplayMin) {
        this.gsrdDisplayMin = gsrdDisplayMin;
    }

    public void setGsrdPackMidsize(TableColumn<GetReplenishDetailOutData, String> gsrdPackMidsize) {
        this.gsrdPackMidsize = gsrdPackMidsize;
    }

    public void setReplenishController(ReplenishController replenishController) {
        this.replenishController = replenishController;
    }

    public void setAddTypeReplenishController(AddTypeReplenishController addTypeReplenishController) {
        this.addTypeReplenishController = addTypeReplenishController;
    }

    public void setIndexController(IndexController indexController) {
        this.indexController = indexController;
    }

    public void setType(String type) {
        this.type = type;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof AddReplenishController)) {
            return false;
        }
        AddReplenishController other = (AddReplenishController)o;
        if (!other.canEqual(this)) {
            return false;
        }
        if (this.getPageSize() != other.getPageSize()) {
            return false;
        }
        if (this.getDefaultPageCount() != other.getDefaultPageCount()) {
            return false;
        }
        ObservableList<GetReplenishDetailOutData> this$observableTableList = this.getObservableTableList();
        ObservableList<GetReplenishDetailOutData> other$observableTableList = other.getObservableTableList();
        if (this$observableTableList == null ? other$observableTableList != null : !this$observableTableList.equals(other$observableTableList)) {
            return false;
        }
        AnchorPane this$anchorPane = this.getAnchorPane();
        AnchorPane other$anchorPane = other.getAnchorPane();
        if (this$anchorPane == null ? other$anchorPane != null : !this$anchorPane.equals(other$anchorPane)) {
            return false;
        }
        ScrollPane this$scrollPane = this.getScrollPane();
        ScrollPane other$scrollPane = other.getScrollPane();
        if (this$scrollPane == null ? other$scrollPane != null : !this$scrollPane.equals(other$scrollPane)) {
            return false;
        }
        VBox this$vBox = this.getVBox();
        VBox other$vBox = other.getVBox();
        if (this$vBox == null ? other$vBox != null : !this$vBox.equals(other$vBox)) {
            return false;
        }
        TextField this$typeQuery = this.getTypeQuery();
        TextField other$typeQuery = other.getTypeQuery();
        if (this$typeQuery == null ? other$typeQuery != null : !this$typeQuery.equals(other$typeQuery)) {
            return false;
        }
        DatePicker this$dateQuery = this.getDateQuery();
        DatePicker other$dateQuery = other.getDateQuery();
        if (this$dateQuery == null ? other$dateQuery != null : !this$dateQuery.equals(other$dateQuery)) {
            return false;
        }
        Button this$save = this.getSave();
        Button other$save = other.getSave();
        if (this$save == null ? other$save != null : !this$save.equals(other$save)) {
            return false;
        }
        Button this$search = this.getSearch();
        Button other$search = other.getSearch();
        if (this$search == null ? other$search != null : !this$search.equals(other$search)) {
            return false;
        }
        Button this$clear = this.getClear();
        Button other$clear = other.getClear();
        if (this$clear == null ? other$clear != null : !this$clear.equals(other$clear)) {
            return false;
        }
        Button this$clearAll = this.getClearAll();
        Button other$clearAll = other.getClearAll();
        if (this$clearAll == null ? other$clearAll != null : !this$clearAll.equals(other$clearAll)) {
            return false;
        }
        Button this$reset = this.getReset();
        Button other$reset = other.getReset();
        if (this$reset == null ? other$reset != null : !this$reset.equals(other$reset)) {
            return false;
        }
        Button this$add = this.getAdd();
        Button other$add = other.getAdd();
        if (this$add == null ? other$add != null : !this$add.equals(other$add)) {
            return false;
        }
        Button this$delete = this.getDelete();
        Button other$delete = other.getDelete();
        if (this$delete == null ? other$delete != null : !this$delete.equals(other$delete)) {
            return false;
        }
        TableView<GetReplenishDetailOutData> this$tableView = this.getTableView();
        TableView<GetReplenishDetailOutData> other$tableView = other.getTableView();
        if (this$tableView == null ? other$tableView != null : !this$tableView.equals(other$tableView)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdSerial = this.getGsrdSerial();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdSerial = other.getGsrdSerial();
        if (this$gsrdSerial == null ? other$gsrdSerial != null : !this$gsrdSerial.equals(other$gsrdSerial)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdProId = this.getGsrdProId();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdProId = other.getGsrdProId();
        if (this$gsrdProId == null ? other$gsrdProId != null : !this$gsrdProId.equals(other$gsrdProId)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdProName = this.getGsrdProName();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdProName = other.getGsrdProName();
        if (this$gsrdProName == null ? other$gsrdProName != null : !this$gsrdProName.equals(other$gsrdProName)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdProPec = this.getGsrdProPec();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdProPec = other.getGsrdProPec();
        if (this$gsrdProPec == null ? other$gsrdProPec != null : !this$gsrdProPec.equals(other$gsrdProPec)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdProUnit = this.getGsrdProUnit();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdProUnit = other.getGsrdProUnit();
        if (this$gsrdProUnit == null ? other$gsrdProUnit != null : !this$gsrdProUnit.equals(other$gsrdProUnit)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdProCompany = this.getGsrdProCompany();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdProCompany = other.getGsrdProCompany();
        if (this$gsrdProCompany == null ? other$gsrdProCompany != null : !this$gsrdProCompany.equals(other$gsrdProCompany)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdProPlace = this.getGsrdProPlace();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdProPlace = other.getGsrdProPlace();
        if (this$gsrdProPlace == null ? other$gsrdProPlace != null : !this$gsrdProPlace.equals(other$gsrdProPlace)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdAverageCost = this.getGsrdAverageCost();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdAverageCost = other.getGsrdAverageCost();
        if (this$gsrdAverageCost == null ? other$gsrdAverageCost != null : !this$gsrdAverageCost.equals(other$gsrdAverageCost)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdGrossMargin = this.getGsrdGrossMargin();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdGrossMargin = other.getGsrdGrossMargin();
        if (this$gsrdGrossMargin == null ? other$gsrdGrossMargin != null : !this$gsrdGrossMargin.equals(other$gsrdGrossMargin)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdProPrice = this.getGsrdProPrice();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdProPrice = other.getGsrdProPrice();
        if (this$gsrdProPrice == null ? other$gsrdProPrice != null : !this$gsrdProPrice.equals(other$gsrdProPrice)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdSalesDays1 = this.getGsrdSalesDays1();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdSalesDays1 = other.getGsrdSalesDays1();
        if (this$gsrdSalesDays1 == null ? other$gsrdSalesDays1 != null : !this$gsrdSalesDays1.equals(other$gsrdSalesDays1)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdSalesDays2 = this.getGsrdSalesDays2();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdSalesDays2 = other.getGsrdSalesDays2();
        if (this$gsrdSalesDays2 == null ? other$gsrdSalesDays2 != null : !this$gsrdSalesDays2.equals(other$gsrdSalesDays2)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdSalesDays3 = this.getGsrdSalesDays3();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdSalesDays3 = other.getGsrdSalesDays3();
        if (this$gsrdSalesDays3 == null ? other$gsrdSalesDays3 != null : !this$gsrdSalesDays3.equals(other$gsrdSalesDays3)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdProposeQty = this.getGsrdProposeQty();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdProposeQty = other.getGsrdProposeQty();
        if (this$gsrdProposeQty == null ? other$gsrdProposeQty != null : !this$gsrdProposeQty.equals(other$gsrdProposeQty)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdNeedQty = this.getGsrdNeedQty();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdNeedQty = other.getGsrdNeedQty();
        if (this$gsrdNeedQty == null ? other$gsrdNeedQty != null : !this$gsrdNeedQty.equals(other$gsrdNeedQty)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdStockStore = this.getGsrdStockStore();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdStockStore = other.getGsrdStockStore();
        if (this$gsrdStockStore == null ? other$gsrdStockStore != null : !this$gsrdStockStore.equals(other$gsrdStockStore)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdDisplayMin = this.getGsrdDisplayMin();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdDisplayMin = other.getGsrdDisplayMin();
        if (this$gsrdDisplayMin == null ? other$gsrdDisplayMin != null : !this$gsrdDisplayMin.equals(other$gsrdDisplayMin)) {
            return false;
        }
        TableColumn<GetReplenishDetailOutData, String> this$gsrdPackMidsize = this.getGsrdPackMidsize();
        TableColumn<GetReplenishDetailOutData, String> other$gsrdPackMidsize = other.getGsrdPackMidsize();
        if (this$gsrdPackMidsize == null ? other$gsrdPackMidsize != null : !this$gsrdPackMidsize.equals(other$gsrdPackMidsize)) {
            return false;
        }
        ReplenishController this$replenishController = this.getReplenishController();
        ReplenishController other$replenishController = other.getReplenishController();
        if (this$replenishController == null ? other$replenishController != null : !(this$replenishController).equals(other$replenishController)) {
            return false;
        }
        AddTypeReplenishController this$addTypeReplenishController = this.getAddTypeReplenishController();
        AddTypeReplenishController other$addTypeReplenishController = other.getAddTypeReplenishController();
        if (this$addTypeReplenishController == null ? other$addTypeReplenishController != null : !(this$addTypeReplenishController).equals(other$addTypeReplenishController)) {
            return false;
        }
        IndexController this$indexController = this.getIndexController();
        IndexController other$indexController = other.getIndexController();
        if (this$indexController == null ? other$indexController != null : !(this$indexController).equals(other$indexController)) {
            return false;
        }
        String this$type = this.getType();
        String other$type = other.getType();
        return !(this$type == null ? other$type != null : !this$type.equals(other$type));
    }

    protected boolean canEqual(Object other) {
        return other instanceof AddReplenishController;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        result = result * 59 + this.getPageSize();
        result = result * 59 + this.getDefaultPageCount();
        ObservableList<GetReplenishDetailOutData> $observableTableList = this.getObservableTableList();
        result = result * 59 + ($observableTableList == null ? 43 : $observableTableList.hashCode());
        AnchorPane $anchorPane = this.getAnchorPane();
        result = result * 59 + ($anchorPane == null ? 43 : $anchorPane.hashCode());
        ScrollPane $scrollPane = this.getScrollPane();
        result = result * 59 + ($scrollPane == null ? 43 : $scrollPane.hashCode());
        VBox $vBox = this.getVBox();
        result = result * 59 + ($vBox == null ? 43 : $vBox.hashCode());
        TextField $typeQuery = this.getTypeQuery();
        result = result * 59 + ($typeQuery == null ? 43 : $typeQuery.hashCode());
        DatePicker $dateQuery = this.getDateQuery();
        result = result * 59 + ($dateQuery == null ? 43 : $dateQuery.hashCode());
        Button $save = this.getSave();
        result = result * 59 + ($save == null ? 43 : $save.hashCode());
        Button $search = this.getSearch();
        result = result * 59 + ($search == null ? 43 : $search.hashCode());
        Button $clear = this.getClear();
        result = result * 59 + ($clear == null ? 43 : $clear.hashCode());
        Button $clearAll = this.getClearAll();
        result = result * 59 + ($clearAll == null ? 43 : $clearAll.hashCode());
        Button $reset = this.getReset();
        result = result * 59 + ($reset == null ? 43 : $reset.hashCode());
        Button $add = this.getAdd();
        result = result * 59 + ($add == null ? 43 : $add.hashCode());
        Button $delete = this.getDelete();
        result = result * 59 + ($delete == null ? 43 : $delete.hashCode());
        TableView<GetReplenishDetailOutData> $tableView = this.getTableView();
        result = result * 59 + ($tableView == null ? 43 : $tableView.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdSerial = this.getGsrdSerial();
        result = result * 59 + ($gsrdSerial == null ? 43 : $gsrdSerial.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdProId = this.getGsrdProId();
        result = result * 59 + ($gsrdProId == null ? 43 : $gsrdProId.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdProName = this.getGsrdProName();
        result = result * 59 + ($gsrdProName == null ? 43 : $gsrdProName.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdProPec = this.getGsrdProPec();
        result = result * 59 + ($gsrdProPec == null ? 43 : $gsrdProPec.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdProUnit = this.getGsrdProUnit();
        result = result * 59 + ($gsrdProUnit == null ? 43 : $gsrdProUnit.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdProCompany = this.getGsrdProCompany();
        result = result * 59 + ($gsrdProCompany == null ? 43 : $gsrdProCompany.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdProPlace = this.getGsrdProPlace();
        result = result * 59 + ($gsrdProPlace == null ? 43 : $gsrdProPlace.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdAverageCost = this.getGsrdAverageCost();
        result = result * 59 + ($gsrdAverageCost == null ? 43 : $gsrdAverageCost.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdGrossMargin = this.getGsrdGrossMargin();
        result = result * 59 + ($gsrdGrossMargin == null ? 43 : $gsrdGrossMargin.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdProPrice = this.getGsrdProPrice();
        result = result * 59 + ($gsrdProPrice == null ? 43 : $gsrdProPrice.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdSalesDays1 = this.getGsrdSalesDays1();
        result = result * 59 + ($gsrdSalesDays1 == null ? 43 : $gsrdSalesDays1.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdSalesDays2 = this.getGsrdSalesDays2();
        result = result * 59 + ($gsrdSalesDays2 == null ? 43 : $gsrdSalesDays2.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdSalesDays3 = this.getGsrdSalesDays3();
        result = result * 59 + ($gsrdSalesDays3 == null ? 43 : $gsrdSalesDays3.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdProposeQty = this.getGsrdProposeQty();
        result = result * 59 + ($gsrdProposeQty == null ? 43 : $gsrdProposeQty.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdNeedQty = this.getGsrdNeedQty();
        result = result * 59 + ($gsrdNeedQty == null ? 43 : $gsrdNeedQty.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdStockStore = this.getGsrdStockStore();
        result = result * 59 + ($gsrdStockStore == null ? 43 : $gsrdStockStore.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdDisplayMin = this.getGsrdDisplayMin();
        result = result * 59 + ($gsrdDisplayMin == null ? 43 : $gsrdDisplayMin.hashCode());
        TableColumn<GetReplenishDetailOutData, String> $gsrdPackMidsize = this.getGsrdPackMidsize();
        result = result * 59 + ($gsrdPackMidsize == null ? 43 : $gsrdPackMidsize.hashCode());
        ReplenishController $replenishController = this.getReplenishController();
        result = result * 59 + ($replenishController == null ? 43 : ($replenishController).hashCode());
        AddTypeReplenishController $addTypeReplenishController = this.getAddTypeReplenishController();
        result = result * 59 + ($addTypeReplenishController == null ? 43 : ($addTypeReplenishController).hashCode());
        IndexController $indexController = this.getIndexController();
        result = result * 59 + ($indexController == null ? 43 : ($indexController).hashCode());
        String $type = this.getType();
        result = result * 59 + ($type == null ? 43 : $type.hashCode());
        return result;
    }

    public String toString() {
        return "AddReplenishController(pageSize=" + this.getPageSize() + ", defaultPageCount=" + this.getDefaultPageCount() + ", observableTableList=" + this.getObservableTableList() + ", anchorPane=" + this.getAnchorPane() + ", scrollPane=" + this.getScrollPane() + ", vBox=" + this.getVBox() + ", typeQuery=" + this.getTypeQuery() + ", dateQuery=" + this.getDateQuery() + ", save=" + this.getSave() + ", search=" + this.getSearch() + ", clear=" + this.getClear() + ", clearAll=" + this.getClearAll() + ", reset=" + this.getReset() + ", add=" + this.getAdd() + ", delete=" + this.getDelete() + ", tableView=" + this.getTableView() + ", gsrdSerial=" + this.getGsrdSerial() + ", gsrdProId=" + this.getGsrdProId() + ", gsrdProName=" + this.getGsrdProName() + ", gsrdProPec=" + this.getGsrdProPec() + ", gsrdProUnit=" + this.getGsrdProUnit() + ", gsrdProCompany=" + this.getGsrdProCompany() + ", gsrdProPlace=" + this.getGsrdProPlace() + ", gsrdAverageCost=" + this.getGsrdAverageCost() + ", gsrdGrossMargin=" + this.getGsrdGrossMargin() + ", gsrdProPrice=" + this.getGsrdProPrice() + ", gsrdSalesDays1=" + this.getGsrdSalesDays1() + ", gsrdSalesDays2=" + this.getGsrdSalesDays2() + ", gsrdSalesDays3=" + this.getGsrdSalesDays3() + ", gsrdProposeQty=" + this.getGsrdProposeQty() + ", gsrdNeedQty=" + this.getGsrdNeedQty() + ", gsrdStockStore=" + this.getGsrdStockStore() + ", gsrdDisplayMin=" + this.getGsrdDisplayMin() + ", gsrdPackMidsize=" + this.getGsrdPackMidsize() + ", replenishController=" + this.getReplenishController() + ", addTypeReplenishController=" + this.getAddTypeReplenishController() + ", indexController=" + this.getIndexController() + ", type=" + this.getType() + ")";
    }
}

